#ifndef __MMU_H__
#define __MMU_H__

#define INICIO_PAGINAS_KERNEL 	0x00100000
#define INICIO_PAGINAS_USUARIO	0x00180000
#define TAMANO_PAGINA 			0x00001000
#define TAMANO_PAGINA_4MB		0x00400000
#define MAX_MEM					0x04000000

void inicializar_mmu();

unsigned int * pagina_libre_kernel();
unsigned int * pagina_libre_usuario();

void extender_dir_kernel();

void inicializar_dir_kernel();

unsigned int * inicializar_dir_usuario();

void mapear_pagina(unsigned int virtual, unsigned int cr3, unsigned int fisica, unsigned int atributos);

void unmapear_pagina(unsigned int virtual, unsigned int cr3);

unsigned int obtener_virtual_libre(unsigned int * cr3);

#endif
